Map<String, int> coinTypeMap = {'ETH': 8, 'BTC': 8, 'EOS': 8, 'NAS': 8};
const int defaultFraction = 8;
extension CoinFinanceUtil on String {
  // 金额 ｜ 币种类型 - 位数转换
  String coinTypeFinance({String coinType}) {
    // 检测金额是否为空，为空时返回空字符串
    if (this == null) return '';
    // 检测金额是否违规，违规返回自身
    double value = double.tryParse(this);
    if (value == null) return this;

    int fractionDigits = defaultFraction;
    // 检测可选参数 coinType 是否为空，为空时默认截取 defaultFraction 位
    if (coinType != null) {
      // 已知币种是否存在 coinTypeMap 位数存储信息内，不存在则默认展示 defaultFraction 位
      fractionDigits = coinTypeMap[coinType] ?? defaultFraction;
    }

    String valueStr = value.toStringAsFixed(fractionDigits);
    return fractionDigits == 0 ? int.tryParse(valueStr).toString() : valueStr;
  }
}
